package org.example.leetCode;

import java.util.ArrayList;
import java.util.HashMap;

/**
 * 387. 字符串中的第一个唯一字符
 * 给定一个字符串 s ，找到 它的第一个不重复的字符，并返回它的索引 。如果不存在，则返回 -1 。
 */
public class Code387 {
    public int firstUniqChar(String s) {
        int[] arr = new int[26];
        for(int i=0;i<s.length();i++){
            char ch = s.charAt(i);
            arr[ch - 'a'] =i ;
        }
        for(int i=0;i<s.length();i++){
            char ch=s.charAt(i);
            if(i==arr[ch-'a']){
                return i;
            }else{
                arr[ch-'a']=-1;
            }
        }
        return -1;
    }

    public static void main(String[] args) {
        Code387 solution = new Code387();

        // 测试用例1
        String s1 = "leetcode";
        int result1 = solution.firstUniqChar(s1);
        System.out.println("第一个唯一字符的索引（" + s1 + "）: " + result1); // 预期输出 0

        // 测试用例2
        String s2 = "loveleetcode";
        int result2 = solution.firstUniqChar(s2);
        System.out.println("第一个唯一字符的索引（" + s2 + "）: " + result2); // 预期输出 2

        // 测试用例3
        String s3 = "aabbcc";
        int result3 = solution.firstUniqChar(s3);
        System.out.println("第一个唯一字符的索引（" + s3 + "）: " + result3); // 预期输出 -1
    }

}
